const
  //判断字符串是否含有''/""
  //规则：以‘开头或者"开头并且中间出现0次或多次非贪婪以‘结尾或者"结尾
  reg_check_str = /^[\'|\"].*?[\'|\"]$/,
  //替换内容
  reg_str = /[\'|\"]/g;

/**
 * 判断是否为对象
 * @param {*} value 对象/非对象
 * @returns false/true
 */
export function isObject(value) {
  return typeof value === 'object' && value !== null;
}

/**
 * 判断对象是否含有自身属性
 * @param {*} target 对象/不是对象
 * @param {*} key 键名
 * @returns false/true
 */
export function hasOwnProperty(target, key) {
  return Object.prototype.hasOwnProperty.call(target, key);
}

//工具函数集合

/**
 * 判断新旧值是否相等
 * @param {*} newValue 新的值
 * @param {*} oldValue 旧的值
 * @return false/true
 */
export function isEqual(newValue, oldValue) {
  return newValue === oldValue;
}

/**
 * 随机生成数字
 * @returns 返回唯一的数值标识
 */
export function randomNum() {
  return new Date().getTime() + parseInt(Math.random() * 10000);
}

/**
 * 判断字符串是否符合正则规则
 * @param {*} str 数字或字符串
 * @return false/true/数字化的str
 */
export function checkType(str) {
  if (reg_check_str.test(str)) {
    return str.replace(reg_str, '');
  }
  switch (str) {
    case 'true':
      return true;
    case 'false':
      return false;
    default:
      break;
  }
  return Number(str);
}